import java.util.Random;

/**
 * 加减法口算练习系统 v0.1
 * 生成50道100以内加法/减法算式的习题
 */
public class CalculationSystemV01 {

    // 随机数生成器
    private static Random random = new Random();

    /**
     * 生成100以内的随机数
     * @return 0-99之间的随机整数
     */
    public static int generateRandomNumber() {
        return random.nextInt(100);
    }

    /**
     * 生成单个算式
     * @return 算式字符串
     */
    public static String generateEquation() {
        int num1 = generateRandomNumber();
        int num2 = generateRandomNumber();

        // 随机决定是加法还是减法
        boolean isAddition = random.nextBoolean();

        if (isAddition) {
            return num1 + " + " + num2 + " = ";
        } else {
            return num1 + " - " + num2 + " = ";
        }
    }

    /**
     * 生成指定数量的算式
     * @param count 算式数量
     * @return 算式数组
     */
    public static String[] generateEquations(int count) {
        String[] equations = new String[count];
        for (int i = 0; i < count; i++) {
            equations[i] = generateEquation();
        }
        return equations;
    }

    /**
     * 格式化输出算式，每行显示多个
     * @param equations 算式数组
     * @param perLine 每行显示的算式数量
     */
    public static void printEquations(String[] equations, int perLine) {
        for (int i = 0; i < equations.length; i++) {
            System.out.print(equations[i] + "\t");
            if ((i + 1) % perLine == 0) {
                System.out.println();
            }
        }
        // 如果最后一行不满，换行
        if (equations.length % perLine != 0) {
            System.out.println();
        }
    }

    public static void main(String[] args) {
        System.out.println("加减法口算练习系统 v0.1");
        System.out.println("======================");

        // 生成50道算式
        String[] equations = generateEquations(50);

        // 每行显示5个算式
        printEquations(equations, 5);

        System.out.println("======================");
        System.out.println("共生成 " + equations.length + " 道算式");
    }
}